import appSettings from '@/config/app-settings'
import i18n from '@/lang'
import apiCode from '@/constant/api-code'
import store from '@/store'
import AppConstant from '@/constant/app-constant'
/**
 * 获取页面title
 * @param title
 * @returns {*}
 */
// 翻译router.meta.title, 使用在breadcrumb（面包屑）、sidebar（侧边栏）、tagsview（页面标签）
export function generateTitle (title) {
  const hasKey = this.$te('route.' + title)

  if (hasKey) {
    // $t :this method from vue-i18n, inject in @/lang/index.js
    return this.$t('route.' + title)
  }
  return title
}

/**
 * 获取app名称
 * @returns {*}
 */
export function getAppName () {
  let loginStyle = store.getters.loginStyle // 获取登录风格
  let appName = 'common.appName'
  if (loginStyle === AppConstant.CUSTOM_CRRC ||
      loginStyle === AppConstant.CUSTOM_DAHUA ||
      loginStyle === AppConstant.CUSTOM_MITSUBISHI) {
    appName = 'common.simpleAppName'
  } else if (loginStyle === AppConstant.CUSTOM_ONEPLUS) {
    appName = 'common.oneplusAppName'
  }
  const appNameKey = appName
  const hasKey = i18n.te(appNameKey)
  if (hasKey) {
    return i18n.t(appNameKey)
  } else {
    return appSettings.title
  }
}

/**
 * 根据api返回消息的多语言key返回错误消息，默认500对应消息（不存在时返回'未知错误'）
 * @param i18nKey
 * @returns {*}
 */
export function getApiMsgByI18nKey (i18nKey) {
  let msgKey500 = apiCode['500']
  if (!i18nKey) {
    i18nKey = msgKey500
  }
  const hasKey = i18n.te(i18nKey)

  if (hasKey) {
    // $t :this method from vue-i18n, inject in @/lang/index.js
    return i18n.t(i18nKey)
  } else {
    const hasKey500 = i18n.te(msgKey500)
    if (hasKey500) {
      return i18n.t(msgKey500)
    }
  }
  return i18n.t('common.unknownError')
}

/**
 * 根据值显示固定的名称
 * @param dataList
 * @param keyValueName
 * @param value
 * @return {string|*}
 */
export function convertValueToObject (dataList, keyValueName, value) {
  if (dataList.length === 0 || keyValueName === null  || value === null) {
    return {}
  }
  for(let i = 0; i < dataList.length; i++) {
    if (value === dataList[i][keyValueName]) {
      return dataList[i]
    }
  }
}
